home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / BatchProcessor.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  6.3 KB  |  223 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseDocument;
  4. import com.extensibility.app.Desktop;
  5. import com.extensibility.app.DialogFactory;
  6. import com.extensibility.xml.SchemaUtilities;
  7. import com.extensibility.xml.URI;
  8. import com.ibm.xml.parsers.SAXParser;
  9. import java.io.IOException;
  10. import java.io.Reader;
  11. import java.io.StringReader;
  12. import java.util.Enumeration;
  13. import java.util.Vector;
  14. import org.xml.sax.AttributeList;
  15. import org.xml.sax.HandlerBase;
  16. import org.xml.sax.InputSource;
  17. import org.xml.sax.Parser;
  18. import org.xml.sax.SAXException;
  19.  
  20. public class BatchProcessor extends HandlerBase implements Runnable {
  21.    public static final String OPEN_CMD = "OpenSchema";
  22.    public static final String IMPORT_EXEMPLAR_CMD = "ImportExemplar";
  23.    public static final String CLOSE_CMD = "CloseSchema";
  24.    public static final String SAVE_CMD = "SaveSchema";
  25.    public static final String SAVE_AS_CMD = "SaveAsSchema";
  26.    public static final String PRINT_CMD = "PrintDiagram";
  27.    public static final String EXIT_CMD = "Exit";
  28.    private URI bpUri;
  29.    private String bpString;
  30.    protected Vector commands;
  31.    protected int comCount;
  32.  
  33.    public BatchProcessor(URI var1) {
  34.       this.bpUri = var1;
  35.       this.bpString = null;
  36.    }
  37.  
  38.    public BatchProcessor(String var1) {
  39.       this.bpUri = null;
  40.       this.bpString = var1;
  41.    }
  42.  
  43.    public void run() {
  44.       try {
  45.          if (this.bpUri != null) {
  46.             this.parse(this.bpUri);
  47.          }
  48.  
  49.          if (this.bpString != null) {
  50.             this.parse(this.bpString);
  51.          }
  52.  
  53.          while(true) {
  54.             BatchCommand var1 = this.getNextCommand();
  55.             if (var1 == null) {
  56.                break;
  57.             }
  58.  
  59.             var1.doCommand();
  60.          }
  61.       } catch (Exception var2) {
  62.          DialogFactory.showException(Desktop.getFrontDocWindow(), 132, var2);
  63.       }
  64.  
  65.    }
  66.  
  67.    public synchronized BatchCommand getNextCommand() {
  68.       if (this.commands == null) {
  69.          return null;
  70.       } else {
  71.          return this.comCount < this.commands.size() ? (BatchCommand)this.commands.elementAt(this.comCount++) : null;
  72.       }
  73.    }
  74.  
  75.    public synchronized BaseDocument isDocAddedToDesktop(URI var1) {
  76.       Enumeration var3 = Desktop.getDocuments();
  77.  
  78.       while(var3.hasMoreElements()) {
  79.          BaseDocument var2 = (BaseDocument)var3.nextElement();
  80.          if (var2.getClass() == Class.forName("com.extensibility.xa.SchemaDoc") && var2.getURI().equals(var1)) {
  81.             return var2;
  82.          }
  83.       }
  84.  
  85.       return null;
  86.    }
  87.  
  88.    public synchronized boolean isDocAddedToDesktop(BaseDocument var1) {
  89.       Enumeration var3 = Desktop.getDocuments();
  90.  
  91.       while(var3.hasMoreElements()) {
  92.          BaseDocument var2 = (BaseDocument)var3.nextElement();
  93.          if (var2 == var1) {
  94.             return true;
  95.          }
  96.       }
  97.  
  98.       return false;
  99.    }
  100.  
  101.    public static boolean isBatchFile(URI var0) {
  102.       return var0.getShortName().endsWith("xab");
  103.    }
  104.  
  105.    public void error(String var1, String var2, int var3, int var4) throws SAXException {
  106.       DialogFactory.showException(Desktop.getFrontDocWindow(), 110, var1);
  107.    }
  108.  
  109.    public void parse(URI var1) throws IOException {
  110.       Reader var3 = null;
  111.  
  112.       try {
  113.          Parser var2 = SchemaUtilities.getParser();
  114.          var2.setEntityResolver(this);
  115.          var2.setErrorHandler(this);
  116.          var2.setDocumentHandler(this);
  117.          var3 = var1.createReader();
  118.          var2.parse(new InputSource(var3));
  119.       } catch (IOException var15) {
  120.          throw var15;
  121.       } catch (Exception var16) {
  122.          if (!(var16 instanceof IOException)) {
  123.          }
  124.       } finally {
  125.          try {
  126.             if (var3 != null) {
  127.                var3.close();
  128.             }
  129.          } catch (IOException var14) {
  130.          }
  131.  
  132.       }
  133.  
  134.    }
  135.  
  136.    public void parse(String var1) throws IOException {
  137.       try {
  138.          SAXParser var2 = new SAXParser();
  139.          var2.setEntityResolver(this);
  140.          var2.setErrorHandler(this);
  141.          var2.setDocumentHandler(this);
  142.          StringReader var3 = new StringReader(var1);
  143.          var2.parse(new InputSource(var3));
  144.       } catch (IOException var5) {
  145.          throw var5;
  146.       } catch (Exception var6) {
  147.          if (!(var6 instanceof IOException)) {
  148.          }
  149.       }
  150.  
  151.    }
  152.  
  153.    public void startDocument() {
  154.       this.commands = new Vector();
  155.       this.comCount = 0;
  156.    }
  157.  
  158.    public void endDocument() {
  159.    }
  160.  
  161.    public void startElement(String var1, AttributeList var2) {
  162.       if (var1.equals("OpenSchema")) {
  163.          String var3 = var2.getValue("uri");
  164.          if (var3 != null) {
  165.             URI var4 = new URI((URI)null, var3);
  166.             if (this.isDocAddedToDesktop(var4) != null) {
  167.                return;
  168.             }
  169.  
  170.             OpenSchemaCommand var5 = new OpenSchemaCommand(this, var4);
  171.             this.commands.addElement(var5);
  172.          }
  173.       } else if (var1.equals("ImportExemplar")) {
  174.          String var8 = var2.getValue("uri");
  175.          String var14 = var2.getValue("asuri");
  176.          if (var8 != null && var14 != null) {
  177.             URI var20 = new URI((URI)null, var8);
  178.             URI var6 = new URI((URI)null, var14);
  179.             this.commands.addElement(new ImportExemplarCommand(this, var20, var6));
  180.          }
  181.       } else if (var1.equals("PrintDiagram")) {
  182.          String var9 = var2.getValue("elementType");
  183.          String var15 = var2.getValue("expand");
  184.          String var21 = var2.getValue("image");
  185.          String var25 = var2.getValue("uri");
  186.          PrintDiagramCommand var7 = new PrintDiagramCommand(this, var9, var15, var21, var25);
  187.          this.commands.addElement(var7);
  188.       } else if (var1.equals("SaveSchema")) {
  189.          String var10 = var2.getValue("uri");
  190.          if (var10 != null) {
  191.             URI var16 = new URI((URI)null, var10);
  192.             SaveSchemaCommand var22 = new SaveSchemaCommand(this, var16);
  193.             this.commands.addElement(var22);
  194.          }
  195.       } else if (var1.equals("SaveAsSchema")) {
  196.          String var11 = var2.getValue("uri");
  197.          String var17 = var2.getValue("asuri");
  198.          if (var11 != null && var17 != null) {
  199.             URI var23 = new URI((URI)null, var11);
  200.             URI var26 = new URI((URI)null, var17);
  201.             SaveAsSchemaCommand var28 = new SaveAsSchemaCommand(this, var23, var26);
  202.             this.commands.addElement(var28);
  203.          }
  204.       } else if (var1.equals("CloseSchema")) {
  205.          String var12 = var2.getValue("uri");
  206.          String var18 = var2.getValue("saveFirst");
  207.          if (var12 != null) {
  208.             URI var24 = new URI((URI)null, var12);
  209.             CloseSchemaCommand var27 = new CloseSchemaCommand(this, var24, var18);
  210.             this.commands.addElement(var27);
  211.          }
  212.       } else if (var1.equals("Exit")) {
  213.          String var13 = var2.getValue("saveFirst");
  214.          ExitAppCommand var19 = new ExitAppCommand((BatchProcessor)null, var13);
  215.          this.commands.addElement(var19);
  216.       }
  217.  
  218.    }
  219.  
  220.    public void endElement(String var1) {
  221.    }
  222. }
  223.